package com.softeem.music_sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.softeem.music_sys.comm.Result;
import com.softeem.music_sys.entity.Album;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author RD
* @description 针对表【album(专辑信息表)】的数据库操作Service
* @createDate 2025-11-07 11:19:16
*/
public interface AlbumService extends IService<Album> {

    /**
     * 根据歌手ID获取专辑列表
     */
    Page<Album> getAlbumsBySinger(Integer singerId, Integer page, Integer limit);

    /**
     * 根据发行公司获取专辑列表
     */
    Page<Album> getAlbumsByCompany(String company, Integer page, Integer limit);

    /**
     * 搜索专辑
     */
    Page<Album> searchAlbums(String keyword, Integer page, Integer limit);

    /**
     * 获取热门专辑
     */
    List<Album> getHotAlbums(Integer limit);
    
    /**
     * 添加专辑
     */
    Result addAlbum(Album album);
    
    /**
     * 根据ID获取专辑信息
     */
    Result getAlbumById(Integer id);
    
    /**
     * 更新专辑信息
     */
    Result updateAlbum(Album album);
    
    /**
     * 删除专辑
     */
    Result deleteAlbum(Integer id);
    
    /**
     * 获取专辑列表
     */
    Result getAlbumList(Integer page, Integer limit);
    
    /**
     * 搜索专辑（Controller调用）
     */
    Result searchAlbumsController(String name, Integer page, Integer limit);
    
    /**
     * 获取歌手的专辑（Controller调用）
     */
    Result getAlbumsBySingerController(Integer singerId, Integer page, Integer limit);
    
    /**
     * 按发行公司获取专辑（Controller调用）
     */
    Result getAlbumsByCompanyController(String company, Integer page, Integer limit);
    
    /**
     * 修改专辑状态（Controller调用）
     */
    Result updateStatusController(Integer id, Integer status);
}